package com.anyext.storage.type;

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class StorageSqlType {
	
	private static Map<String, Class<?>> sqlType = new HashMap<String, Class<?>>();
	
	static {
		sqlType.put("string", String.class);
		sqlType.put("String", String.class);
		sqlType.put(String.class.getName(), String.class);
		
		sqlType.put("bool", Boolean.TYPE);
		sqlType.put("boolean", Boolean.TYPE);
		sqlType.put("Boolean", Boolean.class);
		sqlType.put(Boolean.class.getName(), Boolean.class);
		
		sqlType.put("byte", Byte.TYPE);
		sqlType.put("Byte", Byte.class);
		sqlType.put(Byte.class.getName(), Byte.class);
		
		sqlType.put("char", Character.TYPE);
		sqlType.put("Character", Character.class);
		sqlType.put(Character.class.getName(), Character.class);
		
		sqlType.put("short", Short.TYPE);
		sqlType.put("Short", Short.class);
		sqlType.put(Short.class.getName(), Short.class);
		
		sqlType.put("int", Integer.TYPE);
		sqlType.put("Integer", Integer.class);
		sqlType.put(Integer.class.getName(), Integer.class);
		
		sqlType.put("long", Long.TYPE);
		sqlType.put("Long", Long.class);
		sqlType.put(Long.class.getName(), Long.class);
		
		sqlType.put("double", Double.TYPE);
		sqlType.put("Double", Double.class);
		sqlType.put(Double.class.getName(), Double.class);
		
		sqlType.put("float", Float.TYPE);
		sqlType.put("Float", Float.class);
		sqlType.put(Float.class.getName(), Float.class);
		
		sqlType.put("decimal", BigDecimal.class);
		sqlType.put(BigDecimal.class.getName(), BigDecimal.class);
		
		sqlType.put("date", java.util.Date.class);
		sqlType.put("datatime", java.util.Date.class);
		sqlType.put("time", java.util.Date.class);
		sqlType.put("timestamp", java.util.Date.class);
		sqlType.put(Date.class.getName(), Date.class);
	}
	
	public static void registeSqlType(String name, Class<?> type) {
		sqlType.put(name, type);
	}
	
	public static Class<?> getSqlType(String name) {
		return sqlType.get(name);
	}

}
